\hypertarget{classsc2_1_1_observation_imp}{}\section{sc2\+:\+:Observation\+Imp Class Reference}
\label{classsc2_1_1_observation_imp}\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
Inheritance diagram for sc2\+:\+:Observation\+Imp\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classsc2_1_1_observation_imp}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a862b6bc29806a415caafa84add850e12}\label{classsc2_1_1_observation_imp_a862b6bc29806a415caafa84add850e12}} 
{\bfseries Observation\+Imp} (\hyperlink{classsc2_1_1_proto_interface}{Proto\+Interface} \&proto, \hyperlink{classsc2_1_1_message_response_ptr}{Observation\+Ptr} \&observation, \hyperlink{classsc2_1_1_message_response_ptr}{Response\+Observation\+Ptr} \&response)
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a5d6f5926e68ebeae4f2e8b21d8566f45}\label{classsc2_1_1_observation_imp_a5d6f5926e68ebeae4f2e8b21d8566f45}} 
void {\bfseries Clear\+Flags} ()
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ae86306fc8a2112ca042234e97f5a8b90}\label{classsc2_1_1_observation_imp_ae86306fc8a2112ca042234e97f5a8b90}} 
uint32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_ae86306fc8a2112ca042234e97f5a8b90}{Get\+Player\+ID} () const
\begin{DoxyCompactList}\small\item\em Gets a unique ID that represents the player. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a3609e4280e31b27e0e35a08cfbe757ca}\label{classsc2_1_1_observation_imp_a3609e4280e31b27e0e35a08cfbe757ca}} 
uint32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a3609e4280e31b27e0e35a08cfbe757ca}{Get\+Game\+Loop} () const final
\begin{DoxyCompactList}\small\item\em Get the current game loop indicated by the last observation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a0c3f520595df2948ca7f2a1432b1dcae}\label{classsc2_1_1_observation_imp_a0c3f520595df2948ca7f2a1432b1dcae}} 
const Units \& \hyperlink{classsc2_1_1_observation_imp_a0c3f520595df2948ca7f2a1432b1dcae}{Get\+Units} () const final
\begin{DoxyCompactList}\small\item\em Get a list of all known units in the game. \end{DoxyCompactList}\item 
Units \hyperlink{classsc2_1_1_observation_imp_a9ec74a3937ae047dbeb78575c79091d4}{Get\+Units} (Unit\+::\+Alliance alliance, \hyperlink{sc2__interfaces_8h_af4abbeea3291e718cf2283e1390f3670}{Filter} filter=\{\}) const final
\item 
const \hyperlink{classsc2_1_1_unit}{Unit} $\ast$ \hyperlink{classsc2_1_1_observation_imp_abb210dcc3b4ac518543902d97aee4b10}{Get\+Unit} (uint64\+\_\+t tag) const final
\item 
const \hyperlink{classsc2_1_1_unit}{Unit} $\ast$ \hyperlink{classsc2_1_1_observation_imp_ae0f23420019a31bf108d4ce9eec62cc9}{Get\+Previous\+Unit} (uint64\+\_\+t tag) const final
\item 
const Units \& \hyperlink{classsc2_1_1_observation_imp_a0f4061d42b035d297b8a8bd0f73e5241}{Get\+Units\+Added} () const final
\item 
const Units \& \hyperlink{classsc2_1_1_observation_imp_a6c2fd3bf3abf69dcb868c7cd0a7ffeae}{Get\+Units\+Removed} () const final
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_accd36bca2251ff23157a37a5197afc32}\label{classsc2_1_1_observation_imp_accd36bca2251ff23157a37a5197afc32}} 
const Raw\+Actions \& {\bfseries Get\+Raw\+Actions} () const final
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ad05dbbcda24c6c43be0e9c97c3c9211b}\label{classsc2_1_1_observation_imp_ad05dbbcda24c6c43be0e9c97c3c9211b}} 
const \hyperlink{structsc2_1_1_score}{Score} \& {\bfseries Get\+Score} () const final
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a142311ec3e6ab5128aca87ea3e82c139}\label{classsc2_1_1_observation_imp_a142311ec3e6ab5128aca87ea3e82c139}} 
const Abilities \& {\bfseries Get\+Ability\+Data} (bool force\+\_\+refresh=false) const final
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a8d68d02d19f7810e60ccfebdd555fa6d}\label{classsc2_1_1_observation_imp_a8d68d02d19f7810e60ccfebdd555fa6d}} 
const Unit\+Types \& {\bfseries Get\+Unit\+Type\+Data} (bool force\+\_\+refresh=false) const final
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_aca92e7d4a955461692720481903e596b}\label{classsc2_1_1_observation_imp_aca92e7d4a955461692720481903e596b}} 
const \hyperlink{structsc2_1_1_map_info}{Map\+Info} \& {\bfseries Get\+Map\+Info} () const final
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a2b21ca608004c8373a3fbf41cbd6aff8}\label{classsc2_1_1_observation_imp_a2b21ca608004c8373a3fbf41cbd6aff8}} 
int32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a2b21ca608004c8373a3fbf41cbd6aff8}{Get\+Minerals} () const final
\begin{DoxyCompactList}\small\item\em The mineral count of the player. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a04ff3da52e40caef820ea50c9eaefa35}\label{classsc2_1_1_observation_imp_a04ff3da52e40caef820ea50c9eaefa35}} 
int32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a04ff3da52e40caef820ea50c9eaefa35}{Get\+Vespene} () const final
\begin{DoxyCompactList}\small\item\em The vespene count of the player. \end{DoxyCompactList}\item 
int32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a5e109c30ac039c19bf0c7d3b35bd7ab7}{Get\+Food\+Cap} () const final
\item 
int32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a5489d7a3c6095b29c82e835bb3eb2aba}{Get\+Food\+Used} () const final
\item 
int32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a97f6013fc1578cc1db1266d39edab7c4}{Get\+Food\+Army} () const final
\item 
int32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a88f76eedeac5d81f608b68ca3ff69782}{Get\+Food\+Workers} () const final
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a25d0052c15ff3f0fcc2e6c63801f659f}\label{classsc2_1_1_observation_imp_a25d0052c15ff3f0fcc2e6c63801f659f}} 
int32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a25d0052c15ff3f0fcc2e6c63801f659f}{Get\+Idle\+Worker\+Count} () const final
\begin{DoxyCompactList}\small\item\em The number of workers that currently have no orders. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a694cbb593716e78de0f651790194a6b2}\label{classsc2_1_1_observation_imp_a694cbb593716e78de0f651790194a6b2}} 
int32\+\_\+t {\bfseries Get\+Army\+Count} () const final
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a0ca93e4c0bef3538f5c95faf92f166e0}\label{classsc2_1_1_observation_imp_a0ca93e4c0bef3538f5c95faf92f166e0}} 
int32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a0ca93e4c0bef3538f5c95faf92f166e0}{Get\+Warp\+Gate\+Count} () const final
\begin{DoxyCompactList}\small\item\em Number of warp gates owned by the player. This value should only be nonzero for Protoss. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a357532eefc1ddccbc580773f9b939089}\label{classsc2_1_1_observation_imp_a357532eefc1ddccbc580773f9b939089}} 
int32\+\_\+t \hyperlink{classsc2_1_1_observation_imp_a357532eefc1ddccbc580773f9b939089}{Get\+Larva\+Count} () const final
\begin{DoxyCompactList}\small\item\em Number of available larva. This value should only be nonzer for zerg. \end{DoxyCompactList}\item 
const Game\+State\+Protocol\+::\+Observation $\ast$ \hyperlink{classsc2_1_1_observation_imp_ab77543fa1b95c5e348343129a21c84a3}{Get\+Raw\+Observation} () const final
\begin{DoxyCompactList}\small\item\em A pointer to the last Observation obtained from Get\+Observation. While it\textquotesingle{}s possible to extract most in game data from this pointer. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_af32c4583c928b3db1028768787dda3f6}\label{classsc2_1_1_observation_imp_af32c4583c928b3db1028768787dda3f6}} 
bool {\bfseries Update\+Observation} (\hyperlink{classsc2_1_1_client_events}{Client\+Events} $\ast$client\+\_\+events)
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a9f40fe49b02f4e7476f18cc6b18fc369}\label{classsc2_1_1_observation_imp_a9f40fe49b02f4e7476f18cc6b18fc369}} 
void {\bfseries Issue\+Callbacks} (\hyperlink{classsc2_1_1_client_events}{Client\+Events} $\ast$client\+\_\+events)
\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a2da4769089aaa2fed62ea2ff4c23bca7}\label{classsc2_1_1_observation_imp_a2da4769089aaa2fed62ea2ff4c23bca7}} 
\hyperlink{classsc2_1_1_proto_interface}{Proto\+Interface} \& {\bfseries proto\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a0716ce44205b32255e5ae942b9af746f}\label{classsc2_1_1_observation_imp_a0716ce44205b32255e5ae942b9af746f}} 
\hyperlink{classsc2_1_1_message_response_ptr}{Observation\+Ptr} \& {\bfseries observation\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ac17e83b8d74d06516a3e5d8884c6c94b}\label{classsc2_1_1_observation_imp_ac17e83b8d74d06516a3e5d8884c6c94b}} 
\hyperlink{classsc2_1_1_message_response_ptr}{Response\+Observation\+Ptr} \& {\bfseries response\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a17cad1ac1d7d9b49dc11fcae1c1b54d2}\label{classsc2_1_1_observation_imp_a17cad1ac1d7d9b49dc11fcae1c1b54d2}} 
uint32\+\_\+t {\bfseries player\+\_\+id\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a04fa83a62315b857823483ecb0897a8b}\label{classsc2_1_1_observation_imp_a04fa83a62315b857823483ecb0897a8b}} 
Units {\bfseries units\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a3492efac76e60fa0e8ced127390b0be4}\label{classsc2_1_1_observation_imp_a3492efac76e60fa0e8ced127390b0be4}} 
Units {\bfseries units\+\_\+previous\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ab6fb91f143f1ad8fd7e392a4c41c4a38}\label{classsc2_1_1_observation_imp_ab6fb91f143f1ad8fd7e392a4c41c4a38}} 
Unit\+Idx\+Map {\bfseries units\+\_\+previous\+\_\+map\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ac8f8d06521086006b59c21f96e0fab69}\label{classsc2_1_1_observation_imp_ac8f8d06521086006b59c21f96e0fab69}} 
Units {\bfseries units\+\_\+added\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a98df5eaabf44a9a22b6998ef612e8134}\label{classsc2_1_1_observation_imp_a98df5eaabf44a9a22b6998ef612e8134}} 
Units {\bfseries units\+\_\+removed\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ad83639031944ec89a74a2a2294ee1292}\label{classsc2_1_1_observation_imp_ad83639031944ec89a74a2a2294ee1292}} 
uint32\+\_\+t {\bfseries current\+\_\+game\+\_\+loop\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ad84ac8e47c4d1eb072452f43e528d70e}\label{classsc2_1_1_observation_imp_ad84ac8e47c4d1eb072452f43e528d70e}} 
Raw\+Actions {\bfseries raw\+\_\+actions\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a94762b88f305eb3d526af77798906fa6}\label{classsc2_1_1_observation_imp_a94762b88f305eb3d526af77798906fa6}} 
\hyperlink{structsc2_1_1_map_info}{Map\+Info} {\bfseries map\+\_\+info\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a468bacf333f73d03916e38e916b79d5a}\label{classsc2_1_1_observation_imp_a468bacf333f73d03916e38e916b79d5a}} 
bool {\bfseries map\+\_\+info\+\_\+cached\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a5228baa3989a8a865ab9bb52e7c87fee}\label{classsc2_1_1_observation_imp_a5228baa3989a8a865ab9bb52e7c87fee}} 
int32\+\_\+t {\bfseries minerals\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a7db99324c51040ee9993fb34e02f0667}\label{classsc2_1_1_observation_imp_a7db99324c51040ee9993fb34e02f0667}} 
int32\+\_\+t {\bfseries vespene\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a64ff0ede7e0e82e3e5c5652921365fc3}\label{classsc2_1_1_observation_imp_a64ff0ede7e0e82e3e5c5652921365fc3}} 
int32\+\_\+t {\bfseries food\+\_\+cap\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a270631a1c5b8540d434c31197bed52c7}\label{classsc2_1_1_observation_imp_a270631a1c5b8540d434c31197bed52c7}} 
int32\+\_\+t {\bfseries food\+\_\+used\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a665b9f4491639cf90fbc5286917f51cd}\label{classsc2_1_1_observation_imp_a665b9f4491639cf90fbc5286917f51cd}} 
int32\+\_\+t {\bfseries food\+\_\+army\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_aa452dc8c62f7b287a6729d4514f8b668}\label{classsc2_1_1_observation_imp_aa452dc8c62f7b287a6729d4514f8b668}} 
int32\+\_\+t {\bfseries food\+\_\+workers\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ab718b833210952045be015a4b53146db}\label{classsc2_1_1_observation_imp_ab718b833210952045be015a4b53146db}} 
int32\+\_\+t {\bfseries idle\+\_\+worker\+\_\+count\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a35fe4919cef0782f4ca4fe4e38f00f91}\label{classsc2_1_1_observation_imp_a35fe4919cef0782f4ca4fe4e38f00f91}} 
int32\+\_\+t {\bfseries army\+\_\+count\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ab3c6fc205ca676db56612268e88fc164}\label{classsc2_1_1_observation_imp_ab3c6fc205ca676db56612268e88fc164}} 
int32\+\_\+t {\bfseries warp\+\_\+gate\+\_\+count\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ae04f15a732821f78a1cd7ff3ef8a2d30}\label{classsc2_1_1_observation_imp_ae04f15a732821f78a1cd7ff3ef8a2d30}} 
int32\+\_\+t {\bfseries larva\+\_\+count\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a3d57c045ce99c51aba8d07a1356f7bad}\label{classsc2_1_1_observation_imp_a3d57c045ce99c51aba8d07a1356f7bad}} 
Abilities {\bfseries abilities\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_ad8e87c71a5198f7377abf1a44a71d19e}\label{classsc2_1_1_observation_imp_ad8e87c71a5198f7377abf1a44a71d19e}} 
Unit\+Types {\bfseries unit\+\_\+types\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a3c6fbf535b3faa1e493eb1657260a14c}\label{classsc2_1_1_observation_imp_a3c6fbf535b3faa1e493eb1657260a14c}} 
\hyperlink{structsc2_1_1_score}{Score} {\bfseries score\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a8ec3b27fd52c60b8f1424b01abaa3648}\label{classsc2_1_1_observation_imp_a8ec3b27fd52c60b8f1424b01abaa3648}} 
bool {\bfseries abilities\+\_\+cached\+\_\+}
\item 
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a4dd852af121f946d7e3ad1ba611fe816}\label{classsc2_1_1_observation_imp_a4dd852af121f946d7e3ad1ba611fe816}} 
bool {\bfseries unit\+\_\+types\+\_\+cached}
\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\mbox{\Hypertarget{classsc2_1_1_observation_imp_a97f6013fc1578cc1db1266d39edab7c4}\label{classsc2_1_1_observation_imp_a97f6013fc1578cc1db1266d39edab7c4}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Food\+Army@{Get\+Food\+Army}}
\index{Get\+Food\+Army@{Get\+Food\+Army}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Food\+Army()}{GetFoodArmy()}}
{\footnotesize\ttfamily int32\+\_\+t sc2\+::\+Observation\+Imp\+::\+Get\+Food\+Army (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}

The total supply consumed by army units alone. \begin{DoxySeeAlso}{See also}
\hyperlink{classsc2_1_1_observation_imp_a5489d7a3c6095b29c82e835bb3eb2aba}{Get\+Food\+Used()} \hyperlink{classsc2_1_1_observation_imp_a88f76eedeac5d81f608b68ca3ff69782}{Get\+Food\+Workers()} 
\end{DoxySeeAlso}


Implements \hyperlink{classsc2_1_1_observation_interface_a7fd13a2a776f08f714d941ba9e4bafa8}{sc2\+::\+Observation\+Interface}.

\mbox{\Hypertarget{classsc2_1_1_observation_imp_a5e109c30ac039c19bf0c7d3b35bd7ab7}\label{classsc2_1_1_observation_imp_a5e109c30ac039c19bf0c7d3b35bd7ab7}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Food\+Cap@{Get\+Food\+Cap}}
\index{Get\+Food\+Cap@{Get\+Food\+Cap}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Food\+Cap()}{GetFoodCap()}}
{\footnotesize\ttfamily int32\+\_\+t sc2\+::\+Observation\+Imp\+::\+Get\+Food\+Cap (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}

The total supply cap given the players max possible supply. \begin{DoxySeeAlso}{See also}
\hyperlink{classsc2_1_1_observation_imp_a5489d7a3c6095b29c82e835bb3eb2aba}{Get\+Food\+Used()} \hyperlink{classsc2_1_1_observation_imp_a97f6013fc1578cc1db1266d39edab7c4}{Get\+Food\+Army()} \hyperlink{classsc2_1_1_observation_imp_a88f76eedeac5d81f608b68ca3ff69782}{Get\+Food\+Workers()} 
\end{DoxySeeAlso}


Implements \hyperlink{classsc2_1_1_observation_interface_ac556f665e6920eb853711c1b7d4d54b3}{sc2\+::\+Observation\+Interface}.

\mbox{\Hypertarget{classsc2_1_1_observation_imp_a5489d7a3c6095b29c82e835bb3eb2aba}\label{classsc2_1_1_observation_imp_a5489d7a3c6095b29c82e835bb3eb2aba}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Food\+Used@{Get\+Food\+Used}}
\index{Get\+Food\+Used@{Get\+Food\+Used}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Food\+Used()}{GetFoodUsed()}}
{\footnotesize\ttfamily int32\+\_\+t sc2\+::\+Observation\+Imp\+::\+Get\+Food\+Used (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}

he total supply used by the player as defined\+: \hyperlink{classsc2_1_1_observation_imp_a97f6013fc1578cc1db1266d39edab7c4}{Get\+Food\+Army()} + \hyperlink{classsc2_1_1_observation_imp_a88f76eedeac5d81f608b68ca3ff69782}{Get\+Food\+Workers()}. \begin{DoxySeeAlso}{See also}
\hyperlink{classsc2_1_1_observation_imp_a97f6013fc1578cc1db1266d39edab7c4}{Get\+Food\+Army()} \hyperlink{classsc2_1_1_observation_imp_a88f76eedeac5d81f608b68ca3ff69782}{Get\+Food\+Workers()} 
\end{DoxySeeAlso}


Implements \hyperlink{classsc2_1_1_observation_interface_a77f230bd98b95599338c7788aee00d26}{sc2\+::\+Observation\+Interface}.

\mbox{\Hypertarget{classsc2_1_1_observation_imp_a88f76eedeac5d81f608b68ca3ff69782}\label{classsc2_1_1_observation_imp_a88f76eedeac5d81f608b68ca3ff69782}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Food\+Workers@{Get\+Food\+Workers}}
\index{Get\+Food\+Workers@{Get\+Food\+Workers}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Food\+Workers()}{GetFoodWorkers()}}
{\footnotesize\ttfamily int32\+\_\+t sc2\+::\+Observation\+Imp\+::\+Get\+Food\+Workers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}

The total supply consumed by workers units alone. \begin{DoxySeeAlso}{See also}
\hyperlink{classsc2_1_1_observation_imp_a97f6013fc1578cc1db1266d39edab7c4}{Get\+Food\+Army()} \hyperlink{classsc2_1_1_observation_imp_a5489d7a3c6095b29c82e835bb3eb2aba}{Get\+Food\+Used()} 
\end{DoxySeeAlso}


Implements \hyperlink{classsc2_1_1_observation_interface_a19f0bdd8df647ee935dbe6f3c50d64e7}{sc2\+::\+Observation\+Interface}.

\mbox{\Hypertarget{classsc2_1_1_observation_imp_ae0f23420019a31bf108d4ce9eec62cc9}\label{classsc2_1_1_observation_imp_ae0f23420019a31bf108d4ce9eec62cc9}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Previous\+Unit@{Get\+Previous\+Unit}}
\index{Get\+Previous\+Unit@{Get\+Previous\+Unit}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Previous\+Unit()}{GetPreviousUnit()}}
{\footnotesize\ttfamily const \hyperlink{classsc2_1_1_unit}{Unit} $\ast$ sc2\+::\+Observation\+Imp\+::\+Get\+Previous\+Unit (\begin{DoxyParamCaption}\item[{uint64\+\_\+t}]{tag }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [final]}, {\ttfamily [virtual]}}

Get the unit state as represented by the the call to Get\+Observation two steps ago. This is useful for calculating deltas between \hyperlink{classsc2_1_1_unit}{Unit} states. It is unsafe to assume Get\+Unit and Get\+Previous\+Unit will both necessarily return a \hyperlink{classsc2_1_1_unit}{Unit} given the same tag. The \hyperlink{classsc2_1_1_unit}{Unit} may have been created or destroyed in the last step. 
\begin{DoxyParams}{Parameters}
{\em tag} & Unique tag of the unit. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pointer to the \hyperlink{classsc2_1_1_unit}{Unit} object. 
\end{DoxyReturn}


Implements \hyperlink{classsc2_1_1_observation_interface_a8d642207367f3000ca877f5914073bad}{sc2\+::\+Observation\+Interface}.

\mbox{\Hypertarget{classsc2_1_1_observation_imp_ab77543fa1b95c5e348343129a21c84a3}\label{classsc2_1_1_observation_imp_ab77543fa1b95c5e348343129a21c84a3}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Raw\+Observation@{Get\+Raw\+Observation}}
\index{Get\+Raw\+Observation@{Get\+Raw\+Observation}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Raw\+Observation()}{GetRawObservation()}}
{\footnotesize\ttfamily const Game\+State\+Protocol\+::\+Observation $\ast$ sc2\+::\+Observation\+Imp\+::\+Get\+Raw\+Observation (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [final]}, {\ttfamily [virtual]}}



A pointer to the last Observation obtained from Get\+Observation. While it\textquotesingle{}s possible to extract most in game data from this pointer. 

$<$ \begin{DoxyReturn}{Returns}
A const pointer to the Observation. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
Observation Get\+Observation() 
\end{DoxySeeAlso}


Implements \hyperlink{classsc2_1_1_observation_interface_af3efed53a1a81ccadf236bab386dd108}{sc2\+::\+Observation\+Interface}.

\mbox{\Hypertarget{classsc2_1_1_observation_imp_abb210dcc3b4ac518543902d97aee4b10}\label{classsc2_1_1_observation_imp_abb210dcc3b4ac518543902d97aee4b10}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Unit@{Get\+Unit}}
\index{Get\+Unit@{Get\+Unit}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Unit()}{GetUnit()}}
{\footnotesize\ttfamily const \hyperlink{classsc2_1_1_unit}{Unit} $\ast$ sc2\+::\+Observation\+Imp\+::\+Get\+Unit (\begin{DoxyParamCaption}\item[{uint64\+\_\+t}]{tag }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [final]}, {\ttfamily [virtual]}}

Get the unit state as represented by the last call to Get\+Observation. 
\begin{DoxyParams}{Parameters}
{\em tag} & Unique tag of the unit. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pointer to the \hyperlink{classsc2_1_1_unit}{Unit} object. 
\end{DoxyReturn}


Implements \hyperlink{classsc2_1_1_observation_interface_a66018504725c872e817ef0a6d0629f29}{sc2\+::\+Observation\+Interface}.

\mbox{\Hypertarget{classsc2_1_1_observation_imp_a9ec74a3937ae047dbeb78575c79091d4}\label{classsc2_1_1_observation_imp_a9ec74a3937ae047dbeb78575c79091d4}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Units@{Get\+Units}}
\index{Get\+Units@{Get\+Units}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Units()}{GetUnits()}}
{\footnotesize\ttfamily Units sc2\+::\+Observation\+Imp\+::\+Get\+Units (\begin{DoxyParamCaption}\item[{Unit\+::\+Alliance}]{alliance,  }\item[{\hyperlink{sc2__interfaces_8h_af4abbeea3291e718cf2283e1390f3670}{Filter}}]{filter = {\ttfamily \{\}} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [final]}, {\ttfamily [virtual]}}

Get all units belonging to a certain alliance and in regards to a filter. The \hyperlink{classsc2_1_1_unit}{Unit} objects returned are simply copies of P\+OD types. Therefore editing that data will not change any in game state. See the \hyperlink{classsc2_1_1_action_interface}{Action\+Interface} for changing \hyperlink{classsc2_1_1_unit}{Unit} state. 
\begin{DoxyParams}{Parameters}
{\em alliance} & The faction the units belong to. \\
\hline
{\em filter} & A functor or lambda used to filter out any unneeded units in the list. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A list of units that meet the conditions provided by alliance and filter. 
\end{DoxyReturn}


Implements \hyperlink{classsc2_1_1_observation_interface_aa43cfa17a9ac893500bce33eb41e6171}{sc2\+::\+Observation\+Interface}.

\mbox{\Hypertarget{classsc2_1_1_observation_imp_a0f4061d42b035d297b8a8bd0f73e5241}\label{classsc2_1_1_observation_imp_a0f4061d42b035d297b8a8bd0f73e5241}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Units\+Added@{Get\+Units\+Added}}
\index{Get\+Units\+Added@{Get\+Units\+Added}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Units\+Added()}{GetUnitsAdded()}}
{\footnotesize\ttfamily const Units \& sc2\+::\+Observation\+Imp\+::\+Get\+Units\+Added (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [final]}, {\ttfamily [virtual]}}

Gets a list of units added in the previous step. You could also hook into the On\+Unit\+Created event for this data on a per \hyperlink{classsc2_1_1_unit}{Unit} basis. \begin{DoxySeeAlso}{See also}
On\+Unit\+Created() 
\end{DoxySeeAlso}


Implements \hyperlink{classsc2_1_1_observation_interface_a30cdffc5d5c87797c5c154fe50bad768}{sc2\+::\+Observation\+Interface}.

\mbox{\Hypertarget{classsc2_1_1_observation_imp_a6c2fd3bf3abf69dcb868c7cd0a7ffeae}\label{classsc2_1_1_observation_imp_a6c2fd3bf3abf69dcb868c7cd0a7ffeae}} 
\index{sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}!Get\+Units\+Removed@{Get\+Units\+Removed}}
\index{Get\+Units\+Removed@{Get\+Units\+Removed}!sc2\+::\+Observation\+Imp@{sc2\+::\+Observation\+Imp}}
\subsubsection{\texorpdfstring{Get\+Units\+Removed()}{GetUnitsRemoved()}}
{\footnotesize\ttfamily const Units \& sc2\+::\+Observation\+Imp\+::\+Get\+Units\+Removed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [final]}, {\ttfamily [virtual]}}

Gets a list of units added in the previous step. You could also hook into the On\+Unit\+Created event for this data on a per \hyperlink{classsc2_1_1_unit}{Unit} basis. \begin{DoxySeeAlso}{See also}
On\+Unit\+Created() 
\end{DoxySeeAlso}


Implements \hyperlink{classsc2_1_1_observation_interface_a656f51b87f1fafeeff37206345793476}{sc2\+::\+Observation\+Interface}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/sc2api/sc2\+\_\+client.\+cc\end{DoxyCompactItemize}
